package com.yhy.autoconfig.templates;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.yhy.autoconfig.properties.OssProperties;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

public class OssTemplate {

    private OssProperties properties;

    public OssTemplate(OssProperties properties) {
        this.properties = properties;
    }

    /**
     * 返回值：此图片的访问URL
     *    阿里云中，文件上传之后，手动封装一个返回的地址
     */
    public String upload(String filename,InputStream inputStream) {
        // Endpoint以杭州为例，其它Region请按实际情况填写。
        String endpoint = properties.getEndpoint();
        // 阿里云主账号AccessKey拥有所有API的访问权限
        String accessKeyId = properties.getAccessKey();
        String accessKeySecret = properties.getSecret();

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret);

        // 上传Byte数组。
        byte[] content = "Hello OSS".getBytes();
        // yourObjectName: 上传的文件名称    /2020/12/21/uuidx.jpg

        filename = new SimpleDateFormat("yyyy/MM/dd")
                .format(new Date())+"/"+ UUID.randomUUID().toString() +filename;

        ossClient.putObject(properties.getBucketName(), filename, inputStream);

        // 关闭OSSClient。
        ossClient.shutdown();

        return properties.getUrl() + "/" + filename;
    }

}